package com.jlpay.open.jlpay.sdk.java.model.cashier.request;

import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.jlpay.open.jlpay.sdk.java.model.OrgBaseReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 *
 * @author dengwenning
 * @since 2024/9/24
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class PreOrderRequest extends OrgBaseReq {

    /**
     * 终端号
     */
    private String termNo;
    /**
     * 外部订单号
     */
    private String outTradeNo;
    /**
     * 订单有效期
     */
    private String paymentValidTime;
    /**
     * 商品描述
     */
    private String description;
    /**
     * 商品描述附加数据
     */
    private String attach;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 总交易金额
     */
    private String totalAmount;
    /**
     * 备注
     */
    private String remark;
    /**
     * 回调地址
     */
    private String notifyUrl;
    /**
     * 跳转回的小程序版本
     * develop：开发环境
     * trial：体验环境
     * release：正式环境（默认）
     */
    private String envVersion;
    /**
     * 商户小程序的appid
     */
    private String merchAppid;
    /**
     * 跳转地址
     */
    private String returnUrl;

    @Override
    public String path() {
        return "/open/cashier/trans/trade/pre-order";
    }
}
